Arcadian, Volume 1, Issue 06

OCR'ed and cleaned up
by Richard C. Degler
on February 27, 2011
[note: _underscore_]


------------------------- [arcadian Vol. 1, Issue 06] -------------------------
Page 39 - [originally at the bottom.]

VOLUME 1                        May 4, 1979                       Number 6

_APOLOGIES_ are in order to all beacause I didn't give the games REVERSE
and SIMON a good going-over before printing them, and there are a number
of errors.  Since then, Brett has also managed to simplify SIMON, and the
corrections to both appear later on.  By the way, unless you fellows and
gals are really desperate, I think that questions,etc., by mail would be
more completely answered by the contributors instead of by telephone.

_SYMBOLS_ that I have been using may have caused some confusion.  Firstly,
I slid into using an asterisk * for the multiplication sign in the hand-
written programs last issue, forgetting that there is an asterisk symbol
on the keypad.  From now on I will use a small x for multiplication.  Next,
the symbol # is sometimes used for the 'not equals' [or / overstruck =]
(because it takes only one key stroke of the typewriter).  In the Bally,
this does mean 'not equals' when preceded by IF, and it is also used to
describe a format convention for the tabulation function when preceded
by PRINT.  Symbol [/ over 0] is used for the numeral zero to avoid confusion
with the letter 'O'.  Symbol [-'ed 7] is sometimes used for the numeral seven.

_UTILIZATION_ of the Bally by one of our subscribers is unique.  They operate
a TV booster system, capturing long distance TV signals on mountain tops and
rebroadcast them into valleys that normally lie in a 'shadow'.  The Bally is
used to insert 'commercials', and programs are developed using the graphics
capability to generate logos, and the &(9) and &(10) are used for screen wipes,
color changes, etc.

_SEMINARS_ are being planned at a couple of locations, being developed by
local dealers.  One is being considered in Indiana where all levels of users
would be accommodated, while the other is a bit farther along.  This group
will be having a get-together at 2pm on May 12 at the Computer Center,
28251 Ford Rd., Garden City MI, (422-2570).

_TRANSLATIONS_ of the various BASIC dialects are contained in the new book,
The BASIC Handbook by David Lien, published by CompuSoft Publishing Co.,
P.O. Box 19569, San Diego CA 92119, for $14.95 + 1.35 post + CA tax.
I understand that it has 250 statements in BASIC with their meanings, plus
conversion ideas to other dialects.  There is a review in the April issue
of Creative Computing, pg. 143; and an ad in May Kilobaud, pg. 81.

_PROJECTS_ who is working on what - and what is your status? We'll get some
of you together so's you only invent the wheel once.  Have any of you been able
to use another computer's printing facility to list out the Bally programs?

_MENU_ as mentioned last time was brought up with a little program, but I've
had notes that plain CALL 3172 or CALL 3177 will do it.

_TUTORIALS_ (Hows and whys) are needed in the ARCADIAN in order that we
can learn more about the machine and its operation.  The talents of our
subscribers run the gamut from the tyro to the professional, and for many
of us it is necessary to do things in a cook-book manner, not understanding
what we are doing or why.  Explanations such as those that follow are going
to be of great value to us as we plod ahead.

-------------------------------- arcadian -------------------------------------
Page 40 -

_TUTORIAL_ (1)  SCREEN OPERATIONS, by John Perkins.

    The screen is divided into a left and a right side with a movable boundary.
    The following outputs prevail:
        &(0)=right side register 0    &(4)=left side register 0
        &(1)=  "     "     "     1    &(5)=  "   "      "     1
        &(2)=  "     "     "     2    &(6)=  "   "      "     2
        &(3)=  "     "     "     3    &(7)=  "   "      "     3
          bit; +7-+6-+5-+4-+3-+2-+1-+0-+
               |     color    |  shade |  [really brightness 0-7]
               +--+--+--+--+--+--+--+--+
                                 __________
                         /------/--->  |   \        [outports 9 and 10]
  background area ------/      / +----------\
                        \------+>|     |<---+------ left/right boundary
      [4x3 TV screen]          | |     |    |
                                \+---------/<------ memory partition
                                 \_____|__/

Bally BASIC continually sets &(4) and &(5) to the color/shade defined by
BC, and &(6) and &(7) to the color/shade defined by FC.  These are fixed
while BASIC is in control.  But by moving the boundary so that the right
side is visible, we can then control 4 different color/shades by using
the &(0) thru &(3).  Example:
    &(0)=30;&(1)=85;&(2)=153;&(3)=125;&(9)=0
Three colors are displayed - listing, background, and 'garbage' at the top.
More on this later.  The fourth color should be visible as we scroll the
text into the upper border area.  With &(9) at some other value, such as 10,
the screen is divided and the FC and BC commands allow two more colors on
the screen.  Actually, &(9) has two functions:
       bit number: +--7--+--6--+-5-+-4-+-3-+-2-+-1-+-0-+
                   | Right B.G.|  Left/Right Boundary  |
                   |___color___|____[0 to 40 bytes]____|

The least significant 6 bits set the boundary position (4 pixels or one
memory byte per unit).  The most significant 2 bits choose the color register
associated with the left side background and the right side background.
Try &(9)=135.
The 'garbage' mentioned above is actually the stored program, in the
screen memory, using the even bit positions.   +7-+5-+3-+1-+6-+4-+2-+0-+ mixed
Each pixel equates to two bits of memory       |  Screen   |  Program  | bits!
4 pixels to an 8 bit byte.  The two bits       +--+--+--+--+--+--+--+--+
of each pixel can have 4 representations:           ODD        EVEN
               00 = &(4) left   or &(0) right      [interlaced byte]
               01 = &(5) left   or &(1) right
               10 = &(6) left   or &(2) right
               11 = &(7) left   or &(3) right   When Bally BASIC sets the
screen boundary ( &(9) ) all the way to the right, then only the left
registers &(4) to &(7) are used.  Since it also sets &(4) and &(5) to BC,
and &(6) and &(7) to FC, only the odd bits of memory show on the screen.
   a 00 is the same color as an 01, and a 10 is the same color as a 11
By storing the program in the even bits it can occupy screen memory ( as
every other bit) and yet be invisible.  However, by moving the boundary to
the left, the right-side registers are used, and since the program above
set these to different colors, the stored program becomes "visible" as the
garbage at the top of the screen.

&(10) controls how many raster lines are displayed from memory as opposed
to being part of the background.  &(10)=204 displays all of memory (RAM)
allowing visual inspection of the running program.

-------------------------------- arcadian -------------------------------------
Page 41 -

_TUTORIAL_ (2) EXPLANATIONS by Jean Taillefer.
   * _IF_ statements will execute as a TRUE condition if the value of the
     expression results in a value greater than 0.  (The expression could be
     a calculation.)  If the value is 0 or negative, the IF statement
     regards the condition as FALSE.
     Example: IF TR(1) GOTO 100     .will branch to 100 if TR(1) is = 1
     IF A GOTO 110                  .will branch to 110 if A is greater than 0
   * _AND_ may be expressed in many ways.  The most common form being
     IF A=3 IF B=E GOTO 120         .will branch to 120 if and only if A=3
                                     and if B=0
     IF(A=3)=(B=0) GOTO 120         .does the same thing
   * _OR_ conditions, where you want to jump if either of some conditions are
     true, can be done by
     IF A=3 GOTO 130
     IF A=6 GOTO 130
     IF A=7 GOTO 130                .meaning that if A is either 3, 6,or 7,
                                     the program will jump to 130

     IF(A=3)+(A=6)+(A=7) GOTO 130   .does the same thing

   * Self-starting programs can be made by inserting the line
              1 :RETURN at the beginning, and use this at the end to store on
     cassette- NT=1; :PRINT ;LIST ;PRINT "CLEAR;RUN"


_TUTORIAL_ (3) DATA STORAGE by Bob Weber.
     This subroutine would be called up in order to save the program, the
     registers, and the strings by using a GOTO 9000.
          9000 :PRINT ;LIST
          9010 FOR Z = 1 T0 26      .less, if you don't have that much
          9020 TV = Z + 64           register storage
          9030 PRINT #1,"=",%(20076+(Zx2))
          9040 NEXT z
          9050 FOR Y = 0 T0 N       .where N is the number of strings
          9060 PRINT #1,"@(",Y,")=",@(Y)
          9070 NEXT Y
          9080 PRINT "RUN

_CHECKERS GAME_ listing by John Collins, 713 Bradford Drive, Ft.Walton Beach,
FL 32553 is included.  There is an amazing amount of activity in this game,
that is comparable to the $75. 'Checker Challenger'.  Before the machine makes
a move, it goes thru some steps, and numbers appear to tell you where it is.
The code for the steps is:
              1. the computer has found that it can jump one of your men
              2. checking to see if you can jump it
              3. is a corner open?
              4. is there an open move?
              5.& 6. have the computer's men moving either to get kinged
                 or towards any player's man left
              7. any move an unkinged computer's piece can make
              8. any move
To indicate a double jump, enter the two numbers (of the square you go thru
and the landing square) as if it were a single jump only.

--------------------------------------------------------------------------------
Page 42 - [CHECKERS - sideways - did not scan]

-------------------------------- arcadian -------------------------------------
Page 43 - [MEMORY DUMPS AND LOADERS - did not scan]

--------------------------------------------------------------------------------
Page 44 - [another MEMORY DUMP and RANDOM ART - did not scan]

-------------------------------- arcadian -------------------------------------
Page 45 -

_MACHINE LANGUAGE PROGRAMMING_  A further step along the way was taken by Glenn
Pogue, who modified the "game over" routine of pg. 25, making it print the word
ARCADIAN in 2x normal letter size.  I have not been able to totally duplicate
this feat, I think it lies in the small differences in ROM locations that have
previously been noted.  The total program is:
    9 CLEAR
   10 A=20180;B=A;C=1               .ref pg. 34 "LINE INPUT BUFFER from 20180"
   20 X=-43;GOSUB C                 .lines 20 to 60 call subroutine 52 and
   30 X=53;GOSUB C                   define the required parameters for the
   40 X=27672;GOSUB C                7O to 100 part to work, and get back to
   50 X=20190;GOSUB C                the BASIC
   60 X=-13871;GOSUB C
   70 X=21057: GOSUB C              .lines 70 thru 100 insert the letters per
   80 X=16707; GOSUB C               the scheme shown below.
   90 X=18756; GOSUB C
  100 X=20033; GOSUB C
  110 CALL (B); STOP                .Displays the contents of memory slots
  120 %(A)=X; A=A+2; RETURN         .POKEs the values of X into memory slots

From page 49  This program can be 'clarified' by replacing line 105 with the
statement X=0; GOSUB C .  The zero will step the machine's printing after it
finishes the AN of ARCADIAN.  What is happening is - the machine has been set
into a printing mode and it keeps on going until it hits an internal halt.
The X=0 sets such a halt thru the POKE function, where you want it.

To convert the word ARCADIAN into machine language, each character is converted
into its hexadecimal equivalent (use chart on pg. 16.)  They are then paired
off, each pair is swapped, and the new pair converted into decimal, as follows:

     Desired characters                A  R   C  A   D  I   A  N
     Hexadecimal conversion           41 52  43 41  44 49  41 4E
     Pair off                          4152   4341   4449   414E
     Swap within pair                  5241   4143   4944   4E41
     Convert to decimal (use routine
      on page 36)                     21057  16707  18756  20033
And these are the values of X in lines 70 to 100.
My operation did not give a clear display.  There was more material on the
screen, some of it seemed to be overprinting.  I inserted line 105, X=12336;
GOSUB C, to add some known characters (00), and I could then see the first part
of line 20-> 20 X = -43 in giant letters.
The program is presented for the experimenters in the audience who would like
to have something more unusual.  The program has more potential because the
root subroutine, 52, has many capabilities.

LETTERS from ARCADIAN subscribers to Bally, detailing what their desires would
be in the capability of the Programming Keyboard might help the Bally manage-
ment to move ahead on this project.  The Director of Sales is Mr. J. Nieman,
Bally Consumer Products Div., 10750 West Grand Ave., Franklin Park IL, 60131.

SIMON CORRECTIONS: Make the following changes in the program:
  Revise line 10 CLEAR;&(0)=7;&(1)=7;&(2)=0;&(3)=0;&(9)=30; NT=0;CX=47;CY=20;
                 PRINT "SIMON";B=7;A=0;CX=47;CY=-20;PRINT "SCORE:";NT=5
  Delete lines 70, 80, 90, 100, 160, 170
  Add lines    70 FOR X=1 TO A
               80 GOSUB @(X)x1000
              155 IF D=1 GOSUB 1000; GOTO 170
              160 IF D=2 GOSUB 2000; GOTO 170
              164 IF D=3 GOSUB 3000; GOTO 170
              166 GOSUB 4000
  Revise line 150 IF D [.ne.] @(X) NT=55;MU=33;MU=48;MU=48;NT=3;FC=0;GOTO 10

  In lines 1000, 2000, 3000, 4000 delete the -2xA after 1 TO 255

--------------------------------------------------------------------------------
Page 46 -

_ADS_ Six programs available: Horserace,$3.; TicTacToe,$1; Craps 2, Startrek,
      Slot Machine, Connect Four, at $2. each.  All six for $10.  Include a
      C-30 tape for programming.  Or listing for half price.  All games except
      Startrek have graphics.  S.Waldinger,24740 Woodcroft Dr,Dearborn MI 48124

      Conversions from Hex to Decimal, Decimal to Hex, and Binary to Hex and
      Decimal.  All on one tape for $5.  Robert Strand 10665 E. Foix Ave.,
      Norwalk CA 90650

      The listing for Bob Weber's ad last month should have been:
      Bob Weber 6594 Swartout Rd., Algonac MI 48001 has the following available
      for $2. each plus a tape long enough to accept 4 minutes per program.
      Or $3. each on Bob's tape.
         SUB SEARCH         ALIEN PATROL                 CALENDAR
         SLOT MACHINE       CONCENTRATION                TIC TAC TOE
         FLIGHT SIMULATOR   HANGMAN                      MATH QUIZ
         OTHELLO            MASTERMIND                   SPACE CHASE

      A total of 21 games are available from Jean Taillefer, 115 Northwestern
      Ave., Ottawa, K1Y 0M1 Canada, at costs of $1 for one minute, $2. for
      three, and $3. for a five minute program (you supply the tape).
      Or the listing is half price.  Send for a list of those available.

      ARCADE plus 'cades: 2002,2003,2004,3001,3002,5002, plus DEMO Basic and
      DEMO cassette interface. (these will not do the tricks we talk about)
      total $300. D. Choinsky, 1748 Wiese Ln, Racine WI 53006 414-886-9316

      Two sets of programs available: Set_I GAMES- Cheese Boxes,Random,Siren,
      Slot Machine,Color Match,Rock/Paper/Scissors,Memory Match,Building Blox.
      Set_II VIDEO ART-Wallpaper,Rnd Line,Rnd Box,Color Box,Scroll 1,2,3,
      Electric Doily,Color War,Color Wheel,RubberBand, Laser Duel,Spiral,
      Reverse Box,Perspective Box.  Prices are On His Cassette, $8/Set or
        $10/both               or On Your Cassette, $4/Set or $ 6/both from
      D. Stocker 333 Coronado Dr Mt.Vernon, IN 47620

_REVERSE CORRECTIONS_
  Revise line 260 CY=-20;PRINT" YOU WON IN",;TV=T [div] 10+48;
                  TV=T-T [div] 10x10+48;PRINT "MOVES"
              270 GOTO 10
              280 CX=-50; CY=O

_ _ _ _ _ _ _ _ _ _ _ _ _ _ [fold on the dotted line] _ _ _ _ _ _ _ _ _ _ _ _ _

ARCADIAN                                          [Place US postage stamp here]
Robert Fabris, proof reader [new title]
3626 Morrie Dr.
San Jose, CA 95127

          ===========
          First Class             To: [Address label goes here]
          ===========

------------------------------ [end of Issue 06] ------------------------------
